#include "Imagem.h"


Imagem::Imagem(char* path){
	SDL_Surface* temp=SDL_LoadBMP(path);
	this->im=SDL_DisplayFormat(temp);

	SDL_SetColorKey(this->im,
						SDL_SRCCOLORKEY,
						SDL_MapRGB((this->im)->format,
						corTransparenteR,
						corTransparenteG,
						corTransparenteB));
	this->visivelQ=true;
	this->transparencia=1;
	strcpy(this->path,path);
	this->prioridade=0;

	Screen::instance()->inscreveSurface(this);

}

void Imagem::setPrioridade(int p){
	this->prioridade=p;
	Screen::instance()->desInscreveSurface(this);
	Screen::instance()->inscreveSurface(this);
}

void Imagem::setVisivel(){
	this->visivelQ=true;
}

void Imagem::setInvisivel(){
	this->visivelQ=false;
}

void Imagem::setTransparencia(float t){
	this->transparencia=t;
	if(this->getTransparencia()<1){
		SDL_SetAlpha(this->getSurface(), SDL_SRCALPHA, (Uint8)(this->getTransparencia()*(float)255));
	}
}

void Imagem::position(double x,double y){
	this->x=x;
	this->y=y;

}

float Imagem::getX(){
	return this->x;
}

float Imagem::getY(){
	return this->y;
}

float Imagem::getTransparencia(){
	return this->transparencia;
}

int Imagem::getPrioridade(){
	return this->prioridade;
}

int Imagem::getLargura(){
	return this->im->w;
}
int Imagem::getAltura(){
	return this->im->h;
}

bool Imagem::visivel(){
	return this->visivelQ;
}

/* apenas para poder ser desenhada nao convem mexer na Surface*/
SDL_Surface* Imagem::getSurface(){
	return this->im;
}


